forked from JetBrains/Exposed
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pull latest changes #2
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Sum batch results for inserts When executing a batch insert, the number of inserted rows is the sum of the batch rows instead of the count. Making this distinction allows extensions of batch insert like ``` class MyBatchInsertStatement( table: Table, ) : BatchInsertStatement(table) { override fun prepareSQL(transaction: Transaction) = buildString { append(super.prepareSQL(transaction)) append(" ON CONFLICT (id) DO NOTHING") } } ``` where the return value of `execute` is still accurate. * Add test
TC build status badge was following default branch at teamcity.jetbrains.com. Now it tracks default branch at exposed.teamcity.com.
* task: EXPOSED-58 Revisit detekt.yml and fix existing issues Edits to detekt.yml: - MagicNumber -> ignoreNamedArgument = true (still active for others) - ConstructorParameterNaming -> disabled (still issues with other naming checks like Function and Variable naming starting with underscore) - SpreadOperator -> disabled Issues fixed include (in exposed-core): - White-space - Multile line if/else missing brackets - Exceeding max line length - Wrapping long class/function declarations as per conventions - Classes Exist and NotExist were named starting with a lowercase * Fix detekt issues in exposed-crypt, -money, & -spring-boot-starter * Revert class name change in Op.kt (to handle in separate PR)
* Add samples folder * Update README.md Co-authored-by: Jocelyne <38375996+joc-a@users.noreply.github.com> * Update samples/README.md Co-authored-by: Jocelyne <38375996+joc-a@users.noreply.github.com> * Update samples/exposed-ktor/README.md Co-authored-by: Jocelyne <38375996+joc-a@users.noreply.github.com> --------- Co-authored-by: Jocelyne <38375996+joc-a@users.noreply.github.com>
…1754) * fix: EXPOSED-57 BatchInsertStatement can't be used with MySQL upsert Enable codeblock that was commented out by issue #129. Add condition that prevents AssertionError if autoGeneratedKeys size mismatch occurs with a dialect that supports a third affected-row value (namely MySQL, MariaDB, and both related H2 modes). Add KDocs explaining that returned value of InsertStatement.insertedCount is calculated as the sum of individual statement values when used in a batch. Include note that some vendors (MySQL-related dialects) return 2 if an existing row is updated, so returned value from an upsert mimics the affected-row value from the database. Refactor test helper, excludingH2Version1, to use a pre-existing H2Dialect function, isSecondVersion. * Fix detekt issues causing max threshold build fail * Revert "Fix detekt issues causing max threshold build fail" This reverts commit 7c2c527. Relevant Detekt issues are addressed in PR#1752
* control whether arguments should be inlined or passed in. * fix post-merge issues --------- Co-authored-by: Aleksandr Shubert <alex.shubert@gmail.com>
apiDump was not performed prior to merging PR#1621, causing failed build checks.
Replace spread operators with named arguments in code that was producing warnings on build. Note that, while this removes warnings, analyzed bytecode still shows that a copy of the array is being made. See issue https://youtrack.jetbrains.com/issue/KT-17043
* add partial index support (pg only) * Update exposed-tests/src/test/kotlin/org/jetbrains/exposed/sql/tests/shared/ddl/CreateIndexTests.kt Co-authored-by: Jocelyne <38375996+joc-a@users.noreply.github.com> * Update exposed-core/src/main/kotlin/org/jetbrains/exposed/sql/vendors/Default.kt Co-authored-by: Jocelyne <38375996+joc-a@users.noreply.github.com> * Update exposed-core/src/main/kotlin/org/jetbrains/exposed/sql/vendors/Default.kt Co-authored-by: Jocelyne <38375996+joc-a@users.noreply.github.com> * Update exposed-core/src/main/kotlin/org/jetbrains/exposed/sql/vendors/Default.kt Co-authored-by: Jocelyne <38375996+joc-a@users.noreply.github.com> * Update exposed-core/src/main/kotlin/org/jetbrains/exposed/sql/vendors/Default.kt Co-authored-by: Jocelyne <38375996+joc-a@users.noreply.github.com> * Update exposed-core/src/main/kotlin/org/jetbrains/exposed/sql/vendors/Default.kt Co-authored-by: Jocelyne <38375996+joc-a@users.noreply.github.com> * Update Table.kt * Fix typo * add POSTGRESQLNG to the partial index test * add javadoc uniqueIndex method * add apiDump results --------- Co-authored-by: Aleksandr Shubert <alex.shubert@gmail.com> Co-authored-by: Jocelyne <38375996+joc-a@users.noreply.github.com>
* add after query prepared interceptor * add apiDump results --------- Co-authored-by: Aleksandr Shubert <alex.shubert@gmail.com>
Bumps [org.jetbrains.kotlin.jvm](https://github.com/JetBrains/kotlin) from 1.7.21 to 1.8.22. - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/v1.8.22/ChangeLog.md) - [Commits](JetBrains/kotlin@v1.7.21...v1.8.22) --- updated-dependencies: - dependency-name: org.jetbrains.kotlin.jvm dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Init new documentation website * Move structure from wiki * Move topics from wiki to documentation
Add kotlin serialization plugin to exposed-core and exposed-tests modules, as well as dependency on serialization library. Add build dependency on org.postgresql to allow use of PGobject. Add base JsonColumnType with dialect-specific json sql type and table extension functions. * Add KDocs and tests. * Add jsonb column type & vendor sqlTypes * Add json_extract function for supported dialects and adjust tests. Add apiDump diff. Adjust dependency version to match updated Kotlin version. Caveats: - Oracle and H2 are not yet supported. - Use in DAO also not fully supported. * Add ByteArray mapping to jsonExtract(). * Add test for error message that results when attempting to use a Json column with a non-serializable class.
Add SQLServer and SQLite dialects to filterCondition(). If creation of a partial index was attempted using a dialect that doesn't support it, the filter condition was being ignored and a full index was being created instead. This has been switched so that no index at all is created, which is more consistent with existing behavior (e.g. if a typed index is attempted in an unsupported dialect, the index is also not created). A warning is also logged. Override createIndexWithType() and dropIndex() where necessary. Add unit tests. Remove unused property and function in previous partial index test & change naming style.
…mpts (#1742) * Add possibility to set a delay time for repetition attempts [EXPOSED-46] * [EXPOSED-46] Fix : Fix calculation of random delay number * [EXPOSED-46] LOG : Add log of repetition delay * Fix : Change maxRepetitionDelay and minRepetitionDelay values to milliseconds. Fix : Change KDocs to accomodate this change * Fix : Use ThreadLocalRandom instead of Random to calculate delay time Implement exponential backoff algorithm to calculate transaction delays * Add api files created by task apiDump * Clean : Fix indentation for task detekt * Remove exposed-tests/api
* chore: Set up Maven publishing * chore: Remove nexusPublishing
…d DAO (#1766) Add H2 v2 support and adjust unit tests to properly exclude version 1. Add Oracle support for JSON in text format only. Adjust how BooleanColumnType values from the database are handled, as string versions of the boolean are returned by stored JSON booleans. Add support for values returned from DB when DAO is used, as well as unit tests.
* feat: EXPOSED-68 Add more json/json(b) column functions Add jsonContains() for PostgreSQL/NG and MySQL/MariaDB. Add jsonExists() for all dialects except H2 and SQLServer. Note that a relevant function does exist for SQLServer but it is only available as of 2022 v16.x, while Exposed tests and supports 2017 v14.x Add more unit tests. Fix issues with jsonExtract(): - [Postgres] There are 2 functions, for json vs jsonb type, so a way to distinguish between the invoking columns needed to be supported. - Some dialects were hard-coded with the prefix '$.', but the root context item alone '$' is a valid json path, so the period was removed and tests adjusted. - Refactored dialect overrides to account for edge cases like: if no path args provided; if too many path args provided; if optional arg provided when not supported. * feat: EXPOSED-68 Add more json/json(b) column functions Add a jsonContains() override that allows a raw value to be provided that will be wrapped to a literal under the hood. Change how PostgreSQL checks whether a cast to JSONB needs to be made.
* chore: remove detekt ClassNaming issues * chore: remove warnings in ExposedTransactionManagerTest.kt * chore: remove warnings in EntityUpdateTest.kt * chore: reformat Op.kt * chore: run apiDump Gradle task
Raise levels of API elements annotated with @deprecated as per gradual phase-out guidelines. Raise from WARNING to ERROR: - Op.kt classes: LikeOp, NotLikeOp Raise from ERROR to HIDDEN: - CurrentDateTime object's invoke() (in all 3 datetime modules) - StatementInterceptor interface's afterCommit() and afterRollback() - SchemaUtils object's createFKey() - SQLExpressionBuilder.kt Sequence.nextVal() and SqlExpressionBuilderClass Currently HIDDEN API, now removed: - Database companion object's connect() - ColumnType property autoIncSeqName
* chore: remove detekt SpacingAroundColon issues * chore: remove detekt ParameterListWrapping issues * chore: remove detekt SpacingAroundComma issues * chore: remove detekt Wrapping issues * chore: remove detekt NoConsecutiveBlankLines issues * chore: remove detekt NoUnusedImports issues * chore: remove detekt SpacingAroundOperators issues * chore: remove detekt MultiLineIfElse issues
This change makes the warnings that appear in the IDE based on rules set in the detekt.yml config file. The steps to do it were Settings -> Tools -> detekt -> + Add configuration file -> Choose detekt.yml. This automatically adds a component called "DetektPluginSettings" in detekt.xml, which I modified further.
Add unit tests for JSON and JSONB functions using stored values that contain either a top-level JSON array ('[1, 2, 3]') or an array nested in a JSON object ('{"a":1,"b":[1, 2, 3]}'). Extract common conditional check for older versions of MySQL (and MariaDB) to DatabaseTestsBase class.
Add unit tests using stored JSON values that contain datetime strings, to check how extraction of values and value comparison is handled.
…tring call unless we need to sort values (#1779) Co-authored-by: Sergey Zhuravlev <sergey.zhuravlev@jetbrains.com>
* #623 Add support of window functions in Exposed DSL -Support of partition by and order by clauses -Support of window frame clause (without EXCLUDE) -Factories for common window functions -Support for using aggregate functions as window functions * #623 Fix linter warnings * Better name for NthValue class 'index' argument Change argument to 'n' to conform with the most DB docs Co-authored-by: Jocelyne <38375996+joc-a@users.noreply.github.com> * Better name for nthValue function 'index' argument Change argument to 'n' to conform with the most DB docs Co-authored-by: Jocelyne <38375996+joc-a@users.noreply.github.com> * #623 Refactor window function definition Window function definitions moved from top-level to ISqlExpressionBuilder to eliminate their irrelevant appearance in code completion. * #623 Dump window functions related API changes * #623 Fix smart cast warning by replacing not-null assertion with null-safe call * #623 remove redundant DatabaseDialect.supportsWindowFunctions This flag was used only in tests. Its value was false only for MySql < 8 which is covered by DatabaseTestsBase.kt Transaction.isOldMySql --------- Co-authored-by: Dmitry Levin <dlevin@anylogic.com> Co-authored-by: Jocelyne <38375996+joc-a@users.noreply.github.com>
…raint (#1649) * fix tables creation depending on each other via foreignKey constraint: fix table sorting by references, simplify code * add tests in case there are two tables (parent and child), with the child table referring the parent by the means of a composite foreign key only, the reference is not taken into account by the call SchemaUtils.create and, subsequently, by SchemaUtils.sortTablesByReferences this causes the SchemaUtils to try to create the child table first, resulting in an SQL error: CREATE TABLE IF NOT EXISTS child ..., CONSTRAINT fk_name FOREIGN KEY (col1, col2) REFERENCES parent(col1 col2) ... [42102-199]. Statement(s): ... Table parent not found --------- Co-authored-by: Jocelyne <38375996+joc-a@users.noreply.github.com>
* Added logback configuratio * Reverse order for consistency with existing log4j2.xml --------- Co-authored-by: Jocelyne <38375996+joc-a@users.noreply.github.com>
…opSchema (#1850) * fix: EXPOSED-161 SQL Server syntax incorrectly allows CASCADE with dropSchema Using dropSchema() with cascade set to true in SQL Server throws a syntax exception because cascade is not supported. Edit syntax to remove cascade. Add unit test. Add KDocs comment about cascade flag
* Make all build scripts indexed, cleanup unused plugin * Update dependencies * Add explicit SERVICE_HOST to avoid network issues with Docker 20.* on linux * Do not log ignored tests * Prevent db containers to restart in tests * Cleanup docker plugin usages * Fix db credentials * Add test name to parameters * Reduce columns iteration time * Reduce date time test time * Migrate to faster oracle container * Force drop table before test
* Add spring sample * add: readme files * chore: fix detekte issues * chore: fix detekt isuses * chore: fix detekt issue * chore: empty commit for build * chore: bump up exposed version to 0.43.0 * docs: Add some comments in cods * docs: Update README.md * chore: fix detekt issue * chore: fix detekt issue * fix: detekt issue * fix: import ordering * fix: fit kotlin version to other ktor samples * fix: remove needless empty line * refactor: apply jvm toolchain
) * refactor: Implement a new one with AbstractPlatformTransactionManager * refactor: remove unused property * fix: remove nullable * fix: add show sql feature * fix: rebuild api file * chore: remove property * chore: add default show sql value * fix: api definition * feat: add default database config value * feat :Add SmartTranscationObject implementation * feat: close connection when transaction end * chore: remove unused values * feat: reset outer tx manager when transaction clean up * test: Add outer transaction manager setting exception test * chore: Add import * test: add manager setting test * chore: remake api file * fix: fix when commit or rollback failure * chore: fix detekt issue * test: Add transactionAwareDataSourceProxy test * chore: refactor spring transaction manager test * refactor: remove default value in test * refactor: apply code review * refactor: apply test code review * refactor: merge duplicate tests * refactor: remove mockk and change exposed transaction object to private * refactor: move database to private * refactor: clean up transaction manager after test ended * fix: while condition * test: Add exposed and spring combine transaction * fix: test * fix: api dump * refactor: apply connection spy suggestion * refactor: apply code review * refactor: apply code reivew
* fix: EXPOSED-117 Set jvmToolchain to 8 for all modules
* chore: Adjust test md files Change the naming according to new gradle tasks, docker images, and properties set up in the corresponding `compose` file Use gradle tasks instead of previous setup
Support for getGeneratedKeys() was dropped in the sqlite jdbc version 3.43.0.0. This caused a SQLFeatureNotSupportedException when using this version with Exposed, so the old implementation of getGeneratedKeys() was used in Exposed to retain the previous behaviour.
For devices that don't already have JVM 8 installed, the project failed to find it and use it. Foojay Toolchains Plugin resolves this by providing a repository for downloading JVMs.
* feat: EXPOSED-78 Support DB-generated values for columns This feature will enable marking a column as databaseGenerated to be able to omit setting it when inserting a new record without getting an error. The value for the column can be set by creating a TRIGGER or with a DEFAULT clause, for example.
Gradle plugin was recently upgraded to 8.3, so warnings of compile task target compatibility became errors. Tasks :spring-transaction:compileKotlin and :exposed-spring-boot-starter:compileKotlin failed with the following: 'compileJava' task (current target is 17) and 'compileKotlin' task (current target is 1.8) jvm target compatibility should be set to the same Java version. Consider using JVM toolchain: Fixed by setting compileKotlin task to target jdk17.
…ble (#1860) * fix: EXPOSED-179 Unsigned column check constraint is not unique to table Auto-generated name for check constraint on unsigned column types was not including table name, which was problematic if multiple tables used identical column types with the same name. The check constraint name now includes the table name, unsigned type, and column name, which should avoid intra-/inter-table naming exceptions.
…in SQL Server (#1861) If a table name has a schema-prefix and a column has a default value, SQL Server auto-generates a named-constraint for the default value using the full table name. This throws a syntax exception due to the '.' in the constraint name. Using the table name without schema in the constraint name resolves this.
* fix: Exception when using RESTRICT reference option with SQLServer The following exception is thrown because SQLServer does not support RESTRICT reference option: com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near the keyword 'RESTRICT'. * fix: Exception when using RESTRICT reference option with Oracle The following exception is thrown because Oracle does not have the RESTRICT reference option: java.sql.SQLSyntaxErrorException: ORA-00905: missing keyword Preventing the deletion of a parent row if a child row references it is the default behaviour. * fix: Allow ON UPDATE clause for H2 Oracle All tests pass for it, so it seems like the ON UPDATE clause does work for H2 Oracle, but not for Oracle. * chore: Change dialect names in DialectNameProvider to be more display-friendly * chore: Simplify foreignKeyPart * chore: Reuse testing logic in ForeignKeyConstraintTests
…es (#1841) * fix!: EXPOSED-150 Auto-quoted column names change case across databases Column and table names that are reserved keywords are automatically quoted before being used in SQL statements. Databases that support upper case folding (H2, Oracle) quote and upper case the identifiers, so attempting to use the tables across different databases fails. This fix ensures any reserved keywords used as identifiers are only quoted, so they now retain whatever case the user provides them in, but it will be equivalent across databases. This broke some tests that checked for index name, as names like TABLE_column_IDX, were being created in those databases. This was avoided by pulling inProperCase() out of the buildString until the end of the name creation. BREAKING CHANGE: [H2, Oracle] Reserved words will be treated as quoted identifiers and no longer have their case automatically changed to upper case. * fix!: EXPOSED-150 Auto-quoted column names change case across databases Change table name of tests failing in Oracle due to using a quoted identifier. These tests fail because of a JDBC driver bug specific to quoted table identifiers beign used with an insert statement and preparedStatement(). Upgrading the driver version to at least 21.1.0.0 resolves the issue but causes other failures (namely batch insert / DML Returning errors). This will be investigated for the future, but for now the tables are no longer named using reserved keywords. * fix!: EXPOSED-150 Auto-quoted column names change case across databases Add IdentifierManager cache for identities that have been checked against the keywords list. * fix!: EXPOSED-150 Auto-quoted column names change case across databases Add global flag, preserveKeywordCasing, to DatabaseConfig to allow opt-out from new behavior. Log warnings if table is created using identifiers that are in keywords list. Restrict opt-in test to H2 for proper Database connection and configuration. * fix!: EXPOSED-150 Auto-quoted column names change case across databases Switch preserveKeywordCasing flag to have @OptIn and be false by default. Adjust internal and private functions accordingly. Adjust unit tests to test for when flag is opted-in. Logged warnings only happen if keyword is identified and flag is not opted-in. * fix!: EXPOSED-150 Auto-quoted column names change case across databases Revert changed unit tests to use old behavior since flag set to false as default.
…es (#1856) * fix: EXPOSED-132 Add annotations to spring-boot-starter README samples Fix grammar and formatting. Add link to sample project. Add Kotlin DSL dependency.
In Oracle, update_rule is hardcoded to NULL, which gets converted to 0 when using getInt("UPDATE_RULE"), and is then mistakenly taken to represent DatabaseMetaData.importedKeyCascade = 0.
) * feat: add nested transaction feature * test: add nested transaction test * test: Add requires new and never test * refactor: spring test refactoring * refactor: spring test * refactor: Refactoring spring transaction * test: support and mandatory * refactor: apply code review assert function * docs: add test comments * refactor: apply code review
#1866) * chore: Replace JDK 1.7 support in exposed-jodatime classes Both column type classes in exposed-jodatime contain companion objects that check for java.time classes that were only introduced since JDK 1.8. This was implemented because the module was expected to run on Java version 1.7 and to be compatible with legacy android versions. Since the jvmToolchain has been to set to 8, this logic is no longer needed. * chore: Replace JDK 1.7 support in exposed-jodatime classes Add apiDump.
Oracle returns CASCADE=0, SET_NULL=2, and NO_ACTION=1 `decode (f.delete_rule, 'CASCADE', 0, 'SET NULL', 2, 1) as delete_rule` So when it returns 1, which in the current code corresponds to DatabaseMetaData.importedKeyRestrict, it is mapped to RESTRICT, which is not supported in Oracle. Instead of that, it will now be mapped to NO_ACTION. The resolveRefOptionFromJdbc function was moved from Constraints.kt to DatabaseDialect.kt.
* chore: Bump detekt version from 1.21.0 to 1.23.1 * chore: Disable ArgumentListWrapping rule which is active by default since v1.22.0 * chore: Remove SpacingBetweenDeclarationsWithComments rule warnings in exposed-core * chore: Remove MultiLineIfElse rule warnings in exposed-core * chore: Add maxLineLength to ParameterListWrapping rule * chore: Set properties for Wrapping rule * chore: Disable PropertyWrapping rule which is active by default since v1.23.0 * chore: Disable EnumEntryNameCase rule which is active by default since v1.22.0 * chore: Remove AnnotationOnSeparateLine rule warning in exposed-core * chore: Remove NoEmptyFirstLineInMethodBlock rule warning in exposed-core * chore: Remove SpacingBetweenDeclarationsWithAnnotations rule warnings in exposed-core * chore: Remove SpacingAroundUnaryOperator rule warnings in exposed-core * chore: Rename ComplexMethod to CyclomaticComplexMethod Property 'complexity>ComplexMethod' is deprecated. Rule is renamed to `CyclomaticComplexMethod` to distinguish between Cyclomatic Complexity and Cognitive Complexity. * chore: Remove SpacingBetweenDeclarationsWithAnnotations rule warnings in exposed-crypt * chore: Remove NoEmptyFirstLineInMethodBlock rule warnings in exposed-crypt * chore: Remove MultiLineIfElse rule warning in exposed-dao * chore: Remove FunctionReturnTypeSpacing rule warnings in exposed-dao * chore: Remove CommentWrapping rule warning in exposed-dao * chore: Remove SpacingAroundUnaryOperator rule warnings in exposed-dao * chore: Remove NoSemicolons rule warning in exposed-dao * chore: Remove SpacingAroundUnaryOperator rule warning in exposed-jdbc * chore: Suppress Wrapping rule in JodaTimeMiscTableTest.kt * chore: Remove NoEmptyFirstLineInMethodBlock rule warning in exposed-kotlin-datetime * chore: Remove SpacingBetweenDeclarationsWithAnnotations rule warnings in exposed-kotlin-datetime * chore: Remove PackageName rule warnings in exposed-spring-boot-starter * chore: Remove NoEmptyFirstLineInMethodBlock rule warning in spring-transaction * chore: Remove AnnotationOnSeparateLine rule warning in spring-transaction
* chore: Bump Exposed version from 0.43.0 to 0.44.0 Add 0.44.0 changes to ChangeLog.md Add 0.44.0 breaking changes to BREAKING_CHANGES.md Add line about Spring modules now requiring jdk 17.
…Statements` property set to true (#1873)
* Version Notice for JVM * Updating Notice due to jvmToolchain changes * Update README.md --------- Co-authored-by: Leonid Stashevsky <e5l@users.noreply.github.com>
Raise from ERROR to HIDDEN: - Op.kt classes: LikeOp and NotLikeOp Currently HIDDEN, now removed: - SQLExpressionBuilder.kt Sequence.nextVal() and SqlExpressionBuilderClass - SchemaUtils object createFKey() - StatementInterceptor interface's afterCommit() and afterRollback() - CurrentDateTime object's invoke() (in all 3 date-time modules)
saral
pushed a commit
that referenced
this pull request
Oct 3, 2023
saral
pushed a commit
that referenced
this pull request
Oct 3, 2023
- detekt-gradle-plugin 1.21.0 + formatting plugin #2
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.